﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ProyectoIngenieriaSoftware.Administracion
{
    public partial class Formulario_web11 : System.Web.UI.Page
    {
        #region "Variables Globales"

        static int intOpcionGrabar;//variable tipo switche o sentinela que graba dependiendo si es de agregar o modificar

        #endregion

         #region "Metodos Locales"
        //metodos propios del formulario
        private void LimpiarDatos(bool limpiar)
        {
            if (limpiar)
            {
                this.txtCodigo.Text = "";
                this.txtNombre.Text = "";
                this.txtValor.Text = "";
            }
        }

        void tipomensajeControles() {
            if (intOpcionGrabar == 1)
            {
                txtCodigo_TextBoxWatermarkExtender.WatermarkText = "Digité Codigo";
                txtNombre_TextBoxWatermarkExtender.WatermarkText = "Digité Nombre";
                txtValor_TextBoxWatermarkExtender.WatermarkText = "Digité Valor";
               

            }
            if (intOpcionGrabar == 2)
            {
                txtCodigo_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtNombre_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtValor_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
     

            }
            if (intOpcionGrabar == 3)
            {
                txtCodigo_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtNombre_TextBoxWatermarkExtender.WatermarkText = "Digité documento";
                txtValor_TextBoxWatermarkExtender.WatermarkText = "Digité documento";

            }
        }

        private void Habilitar()
        {
            //enable es para habilitar o deshabilitar con true o false
            this.UpdatePanelCampos.Visible = false;//Donde estan los textbox codigo y descripcion
            this.MnuOpciones.Items[0].Enabled = true;//Agregar
            this.MnuOpciones.Items[1].Enabled = true;//Modificar
            this.MnuOpciones.Items[2].Enabled = true;//Buscar
            this.MnuOpciones.Items[3].Enabled = false;//Grabar
            this.MnuOpciones.Items[4].Enabled = false;//Cancelar
            this.MnuOpciones.Items[4].Text = "Cancelar";
            this.btnBuscar.Enabled = false;
            LimpiarDatos(true);
            //this.MnuOpciones.Items[5].Enabled = true;//Imprimir
        }

        private void DesHabilitar()
        {
            this.UpdatePanelCampos.Visible = true;
            this.MnuOpciones.Items[0].Enabled = false;
            this.MnuOpciones.Items[1].Enabled = false;
            this.MnuOpciones.Items[2].Enabled = false;
            this.MnuOpciones.Items[3].Enabled = true;
            this.MnuOpciones.Items[4].Enabled = true;
            this.MnuOpciones.Items[4].Text = "Cancelar";
            this.btnBuscar.Enabled = false;
            btnBuscar.Enabled = false;
            txtNombre.ReadOnly = false;
            txtValor.ReadOnly = false;
            LimpiarDatos(true);

            //this.mnnOpciones.Items[5].Enabled = false;//Imprimir
        }

         #endregion
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)  Habilitar(); 
        }

        private bool GrabarRegistro()
        {
            switch (intOpcionGrabar)//para saber que opcion  selecciono, el selectedvalue es el que tiene el nombre de las opciones
            {
                case 1:
                    break;

                case 2:
                    break;
                case 3:
                    break;
                case 4:
                    break;

            }

            return true;
        }

        protected void MnuOpciones_MenuItemClick(object sender, MenuEventArgs e)
        {

            switch (this.MnuOpciones.SelectedValue)//para saber que opcion  selecciono, el selectedvalue es el que tiene el nombre de las opciones
            {
                case "opcAgregar":

                    lblTitulo.Text = "Agregar Producto";
                    intOpcionGrabar = 1;
                    tipomensajeControles();
                    DesHabilitar();
                    //para grabar un maestro->un insert en la BD

                    this.txtCodigo.Focus();
                    break;

                case "OpcModificar":
                    if (Roles.IsUserInRole("Administracion"))
                    {
                        lblTitulo.Text = "Actualización de Productos";
                        txtCodigo.Focus();
                        intOpcionGrabar = 2;
                        tipomensajeControles();
                        DesHabilitar();
                        this.btnBuscar.Enabled = true;
                    }
                    else
                        lblMsj.Text = "solo puede modificar el administrador";
                    break;

                case "opcBuscar":
                    lblTitulo.Text = "Búsquedad de Productos";
                    intOpcionGrabar = 3;
                    tipomensajeControles();
                    DesHabilitar();
                    btnBuscar.Enabled = true;
                    txtNombre.ReadOnly = true;
                    txtValor.ReadOnly = true;
                    this.MnuOpciones.Items[3].Enabled = false;
                    txtCodigo.Focus();
                    this.MnuOpciones.Items[4].Text = "Salir de la Búsqueda";

                    break;

                case "opcGrabar":
                    GrabarRegistro();
                    break;

                case "opcCancelar":
                    intOpcionGrabar = 0;
                    lblTitulo.Text = "Administración de Productos";
                    Habilitar();
                    break;
            }
        }


    }
}